"""

关于代码换行
右击行数  点击 soft-wrap
useragent 用户代理     用户身份
useragent_pool 用户代理池     放有多个用户代理的容器 []  () {}
1.为什么要有useragent池的出现?
大量的采集 网站数据  涉及到使用的useragent会被服务端所记录  会被 反扒 不返回数据
403响应码  服务器知道了我们的请求 但是不返回给我们数据
404响应码  没有这个资源路径

2作用
# 如何进行反反爬
就要有到我们的用户代理池   作用可以使用不同的ua发送请请求
降低了服务器不返回给我们的数据概率  达到爬取更多数据的效果

3如何构建 useragent_pool
三种方法


"""
#  第一种  找到多个useragent  放在一个容器里面 放在列表    每次请求 通过索引取值 使用ua
# 通过更改 ua的参数 达到拥有多个不同ua的效果
# ua_list=["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.1.4844.74 Safari/537.36",
#          "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.2.4844.74 Safari/537.36",
#          "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4844.74 Safari/537.36"]
#
# # 循环使用 ua
# for ua in ua_list:
#     headers={
#         'User-Agent':ua

#     }
#     爬虫业务逻辑

#第二种方法  通过random 方法 随机方法   需要用到的 是random.randint  随机数字   进行列表索引取值
import random
ualist=["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.1.4844.74 Safari/537.36",
         "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.2.4844.74 Safari/537.36",
         "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4844.74 Safari/537.36",]

# 通过random模块的randint方法随机生成索引   传入的参数 最小值与最大值
# num=random.randint(0,2)
# headers={
#     "user-agent":ualist[num]
# }
# print(headers)
# 直接随机列表生成列表里面的随机数  通过random的choice方法 传入ua池，返回一个ua池里面的ua
ua=random.choice(ualist)
print(ua)

#  第三种方法   注意点
# 需要借助模块   fake-useragent     生成useragent的库

# pip install fake-useragent
# pip install fake_useragent

# 注意点 在使用时可能会报错     库没有  卸载重装库 关于所有库不能正常使用的处理方法
# pip uninstall 库名      问你 是否卸载 Proceed (Y/n)?   输入y
# FakeUserAgent大写
from fake_useragent import FakeUserAgent

# 通过FakeUserAgent类 里面的 random方法 生成随机的user_agent
# 注意 FakeUserAgent大写
# FakeUserAgent的random方法 和导入的 import random模块  是不冲突的  没有关系
# 注意第一次运行会很忙
user_agent=FakeUserAgent().random
print(user_agent)
# Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36
# Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1500.55 Safari/537.36
# Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:27.0) Gecko/20121011 Firefox/27.0

headers={
    "user-agent":user_agent
}
print(headers)
# FakeUserAgent的好处 不用自己去复制ua


